perm filename COM.RES[COM,LSP] blob
sn#627062 filedate 1981-11-29 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 4. Talk about the defintions of Red and Yellow pages. Talk about
C00024 ENDMK
C⊗;
4. Talk about the defintions of Red and Yellow pages. Talk about
machine-independence of Yellow and machine dependence of Red.
5. Y
7. Use the terminology `not complex' and see how it sounds.
8. Decide on bigfloats after consideration of possible message passing
implementations of it (once there is message passing).
9. Defer until we understand IEEE standard. The table we made up looked like:
370 PDP10 IEEE NLM Vax S-1 Perq
---------------------------------------------------------
S 11 20 8 27 8 24 8 24 8 24 5 13 8 20
N 11 52 8 62 8 56 16 32 8 56 9 27 32 63
X 11 116 11 ?? 11 53 11 53
L 15 113 15 129
Suggested:
S 7 20
N 8 24
X 8 50
10. Flush non-decimal floating point. Make #O, #N, #B non-pervasive.
Generate an extensible # syntax to make the pervasive variety easy to do.
We considered syntax like 43<10> and decided to flush it for above.
13. N
14. Invent GETF, PUTF, REMF. Correct argument order in these.
Make GETPR, PUTPR, REMPR to work only on symbols, also correct argument
order. Use EQ tests everywhere.
These are multiple value stating whether there is/was such a property.
Invent MAP-PROPERTIES and GET-PROPERTIES to operate ala F forms.
{Did we fix GET to be GETPROP??}
15. Y. Proposal for some case sensitive scheme based on packages (so
that searches for Car find the GLOBAL CAR???)
16. We voted and got this far:
IS→ Symbol Impl dep
Prints
↓
------------------------------------
NIL | 4.5 | |
------------------------------------
↓↑ | 2.5 | 1 |
------------------------------------
() | | 1 |
We supposed that NIL and () would read in as empty list.
We punted at this point. Brooks thought that everything printed
had to be portable. I agree.
17. Y
18. Y. Requie vectors and arrays to be distinguishable. Make strings
arrays (and so liable to fill pointers).
21. Flush: see 22.
22. (DEFVAR var)
(DEFVAR var val)
(Defvar var . keywords) keywords ε {initial-value, setq, documentation}
23. N
27. Disallow SETQ and LAMBDA on T, make #T read in the same as T on all
implementations. Rewrite all documentation of predicate to talk about
non-() instead of T.
28. C. More concrete list and rationale.
29. Make up some other proposal.
31. Tone down.
32. Y
33. Defer to declarations.
34. GLS to flesh out the dual macro/special form hack.
35. Y and style note.
37. See 40. [N]
39. See 40. [C]
40. Use EQL throughout. Use CASE for simple case. Moon will think of a name
for the general thing.
41. A
44. C
45. Y
46. See 121. DLW et al will re-define LOOP tastefully.
48. A
50. N. Mapc as in MacLisp.
51. Flush FORxxx.
52. Y
54. Clarify the document. Still didn't decide what the weird example
would do.
55. C. Add LispM multiple value stuff in addition to what's there already.
Add MVcall as well. Rename the forms to: MVsetq, MVlet (?), and MVcall.
56. Solved above.
58. Add MVprog1. Singelton COND clause multiple valued. Suggest
(COND ... (t C)) for multiple value case. Defer on MVand and MVor.
I assume that prog2 and MVprog2 need to be distinguished?
This is a LispM, machine dependent compromise. Is this Common Lisp
or Lisp Machine Lisp.
60. B
63. B. Every DEFUN contains a lexical catch at the beginning so that
(return-from ...) will always work. Think of a good name for them.
77. C. State that you should copy it if you intend to bash it later.
79. Circular printer must know about uninterned symbols. Make a gensym that
generates prettier names. Defer on GENTEMP decision until ???
80. Symbol-package.
81. D
86. C
90. C
92. (LOG arg &optional base)
94. A
95. C
97. Consider HIC's proposal for adding constants into some package
and providing an interface to get them out in various formats.
99. Y. (float (rational[ize] x)) = x needs to be rearched more to
see if it can be done.
100. B & C. (rationalize x &optional y) where, if y is a fixnum, this
is in bits, if y is a flonum it's relative tolerance.
101. Y
102. B & C as in 100.
103. Y (But APL has punted so the point is moot at the moment).
104. Change LOG??? to be BOOLE-???. Add BOOLE function for MacLisp
compatibility and document the historic reasons.
106. N. Clarify documentation mentioning the distribution problem.
107. Y. Look at the Fortran scientific subroutine package for a good definition.
Talk about distribution here too. Add RANDOM of 2 args as in InterLisp.
108. Put random number `state' in a special variable that can be lambda bound
to save that state.
109. Think about characters for a while. If no duplication of functionality
is provided, Moon will buy it.
111. Standard additional characters: <backspace>, <tab>, <rubout>, <form>.
The character set is standard printing ASCII plus <return>. The standard
additional characters are specifications for how to provide these extra
characters (if an implementation wants) but no implementation is required
to have them. Add \#rubout.
112. N
113. (make-char code &optional (bits 0)(font 0) &rest keywords)
Keywords are: :default, :noerror. :default is for default character
returned if you cannot hack together the one you want.
114. N
116. Add DIGIT-WEIGHT and DIGIT-CHARP which returns the weight or ().
118. (char-bit char name), (set-char-bit char name value)
name ε {control, meta...}. Value is ()/non-() regardless of whether setting
the control bit is actually turning it off!!! So, in some implementations
setting the controll bit to non-() turns it off.
120. N. No multi-dimensional arrays as sequences. No RAVEL for now due
to implementation worries in LispM.
121. Several decisions were made and a *plan* for resolving it proposed.
a. Flush all type specific names except ELT and SETELT. Use declarations for
this effect.
b. Invent something like FIXNUM-IDENTITY, FIXNUM!, or (THE <type> <object>)
as a special form that tells the interpreter and compiler what's up. Defer
on the name.
c. Make SEF work more on his keyword thing to make it more tasteful. We
need to resolve the one/two argument predicate thing (inconsistent keywords?).
d. Make GLS work on the functional style proposal to convince people it's
implementationally feasible. Perhaps we could invent a macro construct to
work in the functional position so that the functional style should be
a macro rather than a function. Add this macro facility too in general???
e. DLW, Moon, and Alan will work on fixing up the LOOP construct to
make it acceptable to SEF, GLS, and to make it work nicely for the sequence
iterators.
122. N
123. Y & DLW suggestion (() for ???-end means `the length').
125. Y
127. Refine the problem to CATENATE or CONCATENATE. Look up CATENATE in OED,
put it to user vote.
128. N. Try to work out meet theory on the type hierarchy and see if that makes
sense.
129. Yes for now.
130. Y
131. Defer to LOOP.
132. D. LOOP?
136. Y. Flush NMERGE and make MERGE destructive.
138. State in document that APPEND, NTH, SETNTH will not check for proper
lists unless it happens to get there (APPEND never does on the last list).
If they do get there and the thing isn't a list, it barfs. Add
END-OF-LISTP because everyone writes it. Put defintion in document?
144. N
146. Flush FIRSTN, LASTN, LDIFF => BUTTAIL. Think of a better name.
148. ADJOINF => PUSHNEW to use InterLisp's name.
Note that PUSH and PUSHNEW have reversed order of arguments than InterLisp.
149. C
150. Defer to 121.
151. Do Moon's suggestion. That is, state that the intent of the N series
of list functions is to minimize CONSing, though some implementations
will (such as CDR-coded ones).
154. Retain SWAPF only. Add EXCHF. Add an implementation note on
optimizing SWAPHASH.
156. SXHASH will be non-negative. Explain the SETC (?) problem.
157. B
161. Flush
162. Y
166. A
167. N, and cannot cache values.
170. A
171. Not necessariy in array leaders. Defstruct should allow them with some
syntax. Rename Defstruct array leader stuff. (ALAN's suggestion).
172. N
176. Y
185. Invisible should have a separate specification in defstruct.
191. Add macro characters that don't activate in the middle of a symbol.
192. Wait until we understand <something>.
193. Syntax of <rubout> is implementation dependent but defaultly alphabetic.
196. N. This is implementation dependent, so let them deal with it. Code
using this can't be portable.
197. Flush #A. Use #S((array . keywords)...) instead where the keywords
are the ARRAY ones.
199. GJC and RLB will clean this up proposal wrt `target' and `source' machines.
200. Y. Alan will propose it.
201. Punt.
207. D. Add rationale.
213. Y. Explain the incompatibility with MacLisp.
214. Y. Flush both.
226. N. Define a filesystem interface that is functional rather than
message passing based. Base it on LispM pathname stuff.
227. N
230. Defer until the pathname proposal is in.
231. Give LOAD a keyword for FASL files.
232. Flush READFILE and FASLOAD.